home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / C⁄C++ OS8 / Everything / ModelessText.cp < prev    next >
Encoding:
Text File  |  1998-09-06  |  3.7 KB  |  164 lines  |  [TEXT/CWIE]

  1. // ModelessText.cp -- modeless dialog
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12.  
  13. #include "ResourceDefs.h"
  14. #include "Miscellany.h"
  15. #include "ControlUtils.h"
  16.  
  17. #include "ModelessText.h"
  18.  
  19. #define kSmallField        1
  20. #define kLargeField        2
  21. #define kX12345Field        3
  22. #define kX12345e6Field        4
  23. #define kPasswordField        5
  24. #define kDateField        6
  25. #define kTimeField        7
  26. #define kStyledField        8
  27.  
  28.  
  29. //----------
  30. CModelessText*        CModelessText::sDialog = nil;
  31.  
  32. //----------
  33. // static
  34. CModelessText*        CModelessText::Create ()
  35. {
  36.     CModelessText*        dialog = new CModelessText;
  37.     DModelessTextData*        data = new DModelessTextData;
  38.  
  39.     dialog->MakeDialog (DLOG_ModelessText);
  40.     dialog->ConnectToData (data);
  41.  
  42.     return dialog;
  43. }
  44.  
  45. //----------
  46. // static
  47. CModelessText*        CModelessText::Show ()
  48. {
  49.     if (sDialog == nil) {
  50.         sDialog = CModelessText::Create ();
  51.     }
  52.     if (sDialog != nil) {
  53.         ::SelectWindow (sDialog->mDialog);
  54.         ::ShowWindow (sDialog->mDialog);
  55.     }
  56.     return sDialog;
  57. }
  58.  
  59. //----------
  60. CModelessText::CModelessText ()
  61. {
  62.     mData = nil;
  63. }
  64.  
  65. //----------
  66. CModelessText::~CModelessText ()
  67. {
  68.     sDialog = nil;
  69. }
  70.  
  71. //----------
  72. void    CModelessText::FinishMake ()
  73. {
  74.     mSmallHandle = GetControlItem (kSmallField);
  75.     mLargeHandle = GetControlItem (kLargeField);
  76.     mX12345Handle = GetControlItem (kX12345Field);
  77.     mX12345e6Handle = GetControlItem (kX12345e6Field);
  78.     mPasswordHandle = GetControlItem (kPasswordField);
  79.     mDateHandle = GetControlItem (kDateField);
  80.     mTimeHandle = GetControlItem (kTimeField);
  81.     mStyledHandle = GetControlItem (kStyledField);
  82. }
  83.  
  84. //----------
  85. void    CModelessText::ConnectToData (
  86.     AMSignaler*        inData)
  87. {
  88.     AMDialog::ConnectToData (inData);
  89.     mData = (DModelessTextData*) inData;
  90.  
  91.     SetControlText (mSmallHandle, mData->GetSmall3 ());
  92.     SetControlText (mLargeHandle, mData->GetLarge3 ());
  93.     SetControlTextValue (mX12345Handle, mData->GetX12347 ());
  94.     SetControlTextFloat (mX12345e6Handle, mData->GetX12345e8 ());
  95.     SetControlText (mPasswordHandle, mData->GetPassword3 ());
  96.     SetClockDateTime (mDateHandle, mData->GetDate3 ());
  97.     SetClockDateTime (mTimeHandle, mData->GetTime3 ());
  98.     SetControlText (mStyledHandle, mData->GetStyled3 ());
  99. }
  100.  
  101. //----------
  102. void    CModelessText::DataChanged (
  103.     long        inDataID)
  104. {
  105.     if (inDataID == idSmall3) {
  106.         SetControlText (mSmallHandle, mData->GetSmall3 ());
  107.     }
  108.     if (inDataID == idLarge3) {
  109.         SetControlText (mLargeHandle, mData->GetLarge3 ());
  110.     }
  111.     if (inDataID == idX12347) {
  112.         SetControlTextValue (mX12345Handle, mData->GetX12347 ());
  113.     }
  114.     if (inDataID == idX12345e8) {
  115.         SetControlTextFloat (mX12345e6Handle, mData->GetX12345e8 ());
  116.     }
  117.     if (inDataID == idPassword3) {
  118.         SetControlText (mPasswordHandle, mData->GetPassword3 ());
  119.     }
  120.     if (inDataID == idDate3) {
  121.         SetClockDateTime (mDateHandle, mData->GetDate3 ());
  122.     }
  123.     if (inDataID == idTime3) {
  124.         SetClockDateTime (mTimeHandle, mData->GetTime3 ());
  125.     }
  126.     if (inDataID == idStyled3) {
  127.         SetControlText (mStyledHandle, mData->GetStyled3 ());
  128.     }
  129. }
  130.  
  131.  
  132. //----------
  133. void    CModelessText::DoItem (
  134.     SInt16        inItemHit)
  135. {
  136.     switch (inItemHit) {
  137.     case kSmallField:
  138.             mData->SetSmall3 (GetEditTextChars (mSmallHandle));
  139.         break;
  140.     case kLargeField:
  141.             mData->SetLarge3 (GetEditTextChars (mLargeHandle));
  142.         break;
  143.     case kX12345Field:
  144.             mData->SetX12347 (GetControlTextValue (mX12345Handle));
  145.         break;
  146.     case kX12345e6Field:
  147.             mData->SetX12345e8 (GetControlTextFloat (mX12345e6Handle));
  148.         break;
  149.     case kPasswordField:
  150.             mData->SetPassword3 (GetEditTextChars (mPasswordHandle));
  151.         break;
  152.     case kDateField:
  153.             mData->SetDate3 (GetClockDateTime (mDateHandle));
  154.         break;
  155.     case kTimeField:
  156.             mData->SetTime3 (GetClockDateTime (mTimeHandle));
  157.         break;
  158.     case kStyledField:
  159.             mData->SetStyled3 (GetEditTextChars (mStyledHandle));
  160.         break;
  161.  
  162.     } // switch
  163. }
  164.